package com.fowo.api.model.amazon.reimbursements;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 亚马逊赔偿表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class AmazonReimbursementsImportPo {

  /** 店铺id */
  @ExcelProperty("店铺id")
  @Size(max = 50, message = "店铺id长度不能超过50")
  private String sidShopName;

  @ExcelIgnore
  @Schema(title = "店铺id")
  private String sid;

  /** 批准日期【站点时间】 */
  @ExcelProperty("批准日期【站点时间】")
  @DateTimeString(message = "批准日期【站点时间】不是有效的时间日期格式")
  private String approvalDate;

  /** 赔偿编号 */
  @ExcelProperty("赔偿编号")
  @Size(max = 50, message = "赔偿编号长度不能超过50")
  private String reimbursementId;

  /** 问题编号 */
  @ExcelProperty("问题编号")
  @Size(max = 50, message = "问题编号长度不能超过50")
  private String caseId;

  /** 亚马逊订单号 */
  @ExcelProperty("亚马逊订单号")
  @Size(max = 50, message = "亚马逊订单号长度不能超过50")
  private String amazonOrderId;

  /** 原因 */
  @ExcelProperty("原因")
  @Size(max = 50, message = "原因长度不能超过50")
  private String reason;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnsku;

  /** ASIN */
  @ExcelProperty("ASIN")
  @Size(max = 50, message = "ASIN长度不能超过50")
  private String asin;

  /** 标题 */
  @ExcelProperty("标题")
  private String itemName;

  /** 状况 */
  @ExcelProperty("状况")
  @Size(max = 50, message = "状况长度不能超过50")
  private String condition;

  /** 币种 */
  @ExcelProperty("币种")
  private String currencyUnit;

  /** 每件商品赔偿金额 */
  @ExcelProperty("每件商品赔偿金额")
  @Size(max = 50, message = "每件商品赔偿金额长度不能超过50")
  private String amountPerUnit;

  /** 总金额 */
  @ExcelProperty("总金额")
  @Size(max = 50, message = "总金额长度不能超过50")
  private String amountTotal;

  /** 赔偿数量（现金） */
  @ExcelProperty("赔偿数量（现金）")
  @IntegerString(
    message = "赔偿数量（现金）数值格式不正确",
    label = "赔偿数量（现金）"
  )
  private String quantityReimbursedCash;

  /** 赔偿数量（库存） */
  @ExcelProperty("赔偿数量（库存）")
  @IntegerString(
    message = "赔偿数量（库存）数值格式不正确",
    label = "赔偿数量（库存）"
  )
  private String quantityReimbursedInventory;

  /** 赔偿数量（总计） */
  @ExcelProperty("赔偿数量（总计）")
  @IntegerString(
    message = "赔偿数量（总计）数值格式不正确",
    label = "赔偿数量（总计）"
  )
  private String quantityReimbursedTotal;

  /** 原始赔偿编号 */
  @ExcelProperty("原始赔偿编号")
  @Size(max = 50, message = "原始赔偿编号长度不能超过50")
  private String originalReimbursementId;

  /** 赔偿类型 */
  @ExcelProperty("赔偿类型")
  @Size(max = 50, message = "赔偿类型长度不能超过50")
  private String originalReimbursementType;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String countryName;

  @ExcelIgnore
  @Schema(title = "国家")
  private String country;
}
